#include <stdio.h>

#define N 10

void print(int *, int);

/**
 * 题目：有一个已经排好序的数组。现输入一个数，要求按原来的规律将它插入数组中。
 * 程序分析：首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。
*/
int main(int argc, char const *argv[])
{
    int n;
    int i, j=0;
    // int arr[N] = {3, 12, 14, 24, 35, 46, 56, 67, 68, 79};
    int arr[N] = {123, 82, 74, 56, 45, 41, 36, 27, 18, 9};
    int dest[N+1];
    print(arr, N);

    printf("请输入一个数字：");
    scanf("%d", &n);
    if(arr[0] < arr[N-1])
    {
        for(i = 0; i < N; i++)
        {
            if(arr[i] < n) dest[j++] = arr[i];
            else 
            {
                dest[j++] = n;
                break;
            }
        }
    } else
    {
        for(i = 0; i < N; i++)
        {
            if(arr[i] > n) dest[j++] = arr[i];
            else 
            {
                dest[j++] = n;
                break;
            }
        }
    }
    
    for(; i<N; i++)
    {
        dest[j++] = arr[i];
    }

    if(j==10) dest[j] = n;


    print(dest, N+1);
    
    return 0;
}

void print(int *arr, int len)
{
    for(int i = 0; i < len; i++)
    {
        printf("%d ", arr[i]);
    }
    printf("\n");
}